/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.distrimas.senta.dominio.compras.calificacion;

import com.distrimas.senta.dominio.compras.ordencompra.OrdenCompraDAO;
import com.distrimas.senta.dominio.compras.ordencompra.OrdenCompraDTO;
import com.distrimas.senta.dominio.contabilidad.nomina.EmpleadoDAO;
import com.distrimas.senta.dominio.contabilidad.nomina.EmpleadoDTO;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Lis
 */
public class CalificacionController extends HttpServlet {
   
    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    private CalificacionDTO calificacion;
    private CalificacionDAO calificaDao;
    private CriterioCalificacionDAO criterio;
    private CriterioCalificacionDTO criterio2;
    private EmpleadoDAO emp;
    private EmpleadoDTO emp2;
    private OrdenCompraDAO oc;
    private OrdenCompraDTO oc2;
    float califpromedio = 0;
    private int cantidadcriterios = 3;
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        try {
            boolean ingresa = true,calificado=false;
            float aux=0;String concat="";
            calificacion = new CalificacionDTO();
            calificaDao= CalificacionDAO.getCalificacionDAO();
            oc2 = new OrdenCompraDTO();
            oc = OrdenCompraDAO.getOrdenCompraDAO();
            oc2 = oc.consultarOrdenCompra(request.getParameter("toc"));
            calificado = calificaDao.Encontrado(oc2);
            if(calificado==false){
                for(int x=1;x<=cantidadcriterios;x++){
                concat = "select"+String.valueOf(x);
                System.out.println(concat);
                aux=Float.parseFloat(request.getParameter(concat));
                califpromedio = aux + califpromedio;
                }
                califpromedio = califpromedio/cantidadcriterios;
                criterio= CriterioCalificacionDAO.getCriterioCalificacionDAO();
                criterio2 = criterio.consultarCriterio("1");
                calificacion.setCriterio(criterio2);
                calificacion.setValor(califpromedio);
                calificacion.setOrdenCompra(oc2);
                emp2 = new EmpleadoDTO();
                emp = EmpleadoDAO.getEmpleadoDAO();
                emp2 = emp.consultarEmpleado("444");
                calificacion.setCalificador(emp2);
                ingresa = calificaDao.ingresaCalificacion(calificacion);
            }
            else{
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Calificacion no valida</title>");
                out.println("</head>");
                out.println("<body>");
                out.println("<h1> La orden de compra ya ha sido calificada con anterioridad"+"Verifique el codigo de la OC"+"</h1>");
                out.println("</body>");
                out.println("</html>");
            }
            
            if (ingresa==true){
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Ingresar Calificacion</title>");
                out.println("</head>");
                out.println("<body>");
                out.println("<h1> Calificacion ingresada con exito"+request.getSession().getAttribute("xd")+"</h1>");
                out.println("</body>");
                out.println("</html>");

            }else{
                out.println("<html>");
                out.println("<head>");
                out.println("<title>ERROR</title>");
                out.println("</head>");
                out.println("<body>");
                out.println("<h1>Ha ocurrido un error al ingresar la calificacion por favor revise los datos que ingreso"+"</h1>");
                out.println("</body>");
                out.println("</html>");
            }
        } finally { 
            out.close();
        }
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}
